==============================================================================
͂߂

    8080,8085,Z80 ̃NXJz肵AZuł
    Ce, UCO̗jjbNɑΉĂ܂
    IuWFNg̓CeHEX`ŏo͂Ƃł܂
    G~[^(j80, u80)ɑgݍނ߂̃[hĂ܂
    ZASM(v1.64) ɎOo͂܂

    ̓IȎǵAj80, u80, tools80 ̃hLgQƂĂ

    ZASM(v1.64) ̎dlQlɂĂ܂
    http://www.vector.co.jp/soft/dos/prog/se010314.html

    błł
      EBIN, BAS`(DISK BASIC ̃x^t@C) ̏o͂ɑΉ\ł
      EgpĂ͂ȂAhX͈͂`ł悤ɂH
      EWJ}ÑG[OƂ
      EG[bZ[W𒚔Jɂ
      E̕΍  ΂炭u\
      Ep\[X *߂Ă* END [ (~H)
      EWINCLUDE (~H)

==============================================================================
\[XEt@C
  ER[h́uWindows-31JvƂĉ߂܂
  ExȊO͓sɏdċLqł܂
    ɃOt@C̐ɂ̂ł
    RŁux[,x]vux,V{`v֎~Ă܂
  EJ̋؂蕶 , J}, ^u ł
    AALD揇ʂŗOĂ܂
      1. p̒̋؂蕶́A؂蕶Ƃ܂
      2. ʂ̒̋󔒂́A؂蕶Ƃ܂
    ܂uAF'ṽA|XgtBɂĂȏĂ܂
  EZ~R(;) ȍ~̓RgƂĈ܂


==============================================================================
P[VEJE^
  EP[VEJE^ 0x0000 -> 0xFFFF z܂
    o͍ς݂̃AhX㏑悤Ƃۂɂ̓G[ƂȂ܂
  EP[VEJE^ \[Xt@ĆusvPʂɍXV܂
    }NœWJꂽꍇWJ́usvɐڂ܂
  EȃV{u$vŃANZXł܂


==============================================================================

  E] t32bit ŏ܂
  ELȂꍇA0xFFFF Ń}XNꂽlԂ܂


------------------------------------------------------------------------------
  Zq
  ~~~~~~~~~~~~~~~~~~~~
    (  )        : E    
    ~  !        : E   u!v: FALSE(0)  TRUE(0ȊO)
    *  /  %     :     
    +  -        :    u+v: ̏ꍇuAv      <Ή>
    << >>       :     ZpVtg
    <  <= >  >= :     񌋍ł͂܂
    == !=       :     񌋍ł͂܂            <Ή>
    &           :    u&v: ̏ꍇuAv      <Ή>
    ^           :     
    |           :     
    &&          :     Z]͂܂
    ||          :     Z]͂܂
    ?  :        : E    


  萔
  ~~~~~~~~~~~~~~~~~~~~
    ELɓĂ͂܂̂𐔒lƂĕ]܂
      E擪Ŏn܂														...擪܂́u_vŎn܂	Ƃ邩H
        Eu2001Bv͐Ƃĕ]܂G[ƂȂ܂
      E擪u$vŁA擪̌uv܂́uAv-uFv
        Eu$_123v͐Ƃĕ]܂										...u$_v 00H ƂėǂHHH
      E擪u@vŁA擪̌u0v-u7v
        Eu@_123v͐Ƃĕ]܂										...u@_v 00Q ƂėǂHHH
      Eu%v̖`ɂ邩u)vȊỎZqɑA擪̌u0v܂́u1v
        Eu%2001v͐Ƃĕ]܂
        Eu%1002v͐Ƃĕ]܂G[ƂȂ܂
    EtH[}bg
      E 2iFɁuBv܂ 擪Ɂu%v
      E 8iFɁuOv܂ uQv܂ 擪Ɂu@v
      E10iFɁuDv܂ (ʎqȂ)
      E16iFɁuHv܂ 擪Ɂu$v
    E0xFFFF Ń}XNlԂ܂
    E擪ƂȂ錅ȊO̔Cӂ̌Ɂu_v}ł܂


  萔
  
  ~~~~~~~~~~~~~~~~~~~~
    Eu'vu"v܂́AԊÓu{vu}vň͂܂ꂽ̂̂
      ꕶ̂̂𕶎萔AȊO𕶎Ƃ܂
      ԊÓu{v-u}v́A}NWJۂɋ؂蕶ƂĈ܂
      test macro arg
           if "arg"=="A" ; arg ͎ɒu܂ (uargv̂܂)
           ...
           if arg=="A"   ; arg ͎ɒuAV{Ƃĕ]܂
           ...
           if {arg}=="A" ; arg ͎ɒuAƂĕ]܂
           ...
           endm

      萔̗F
        'A', '"', "'", {A}

      ̗F
        'ABC', '"YES"', {ABC}
        "" (0̕)
        ""&0 ̕]
        "GAME OVER"&0 ̕]

      LD macro reg1, reg2
        ;;; if reg1!="(HL)"     ; uꂽ A  (HL) ]Ă܂
        ;;; if "reg1"!="(HL)"   ; ɒuȂ̂Ń_
            if {reg1}!="(HL)"   ; OK
            ld reg1, reg2
            endif
            endm

    EGXP[vɂ͑ΉĂ܂
    E萔́Al(ASCIIR[h/b)Ƃĕ]Ă܂
    E͘A(u+v,u&v) r(u==v,u!=v) \ł
      Zq̏ȂƂЕ̏ꍇẢZƂȂ܂
     u0̕vƘAl(萔܂)́uvɂȂ܂
      rŽʂ͐lƂȂ܂
    EOZɕ񂪊܂܂ꍇ
      E̕]ʂɂȂꍇ̓G[Ƃ܂
      E^,Ûǂ炩Ԃ\ꍇ́A
        lԂꍇ()Ƃ܂

        cond?"ABC":0
           "ABC"  chr$(0) Ԃ

        cond1?(cond2?"ABC":1+1):0
           "ABC"  chr$(1+1)  chr$(0) Ԃ
             chr$(1+1)  chr$(1)+chr$(1) ƂȂȂ̂Œ

        cond1?(cond2?"ABC":""+1+1):0
           "ABC"  chr$(1)+chr$(1)  chr$(0) Ԃ

  V{
  ~~~~~~~~~~~~~~~~~~~~
    Eq


==============================================================================
t@C
  Et@C͑΃pXŋLqł܂
    pX̋؂蕶́AvbgtH[ɂ炸u/vgpł܂
  E()Ƃď܂̂Łu"v܂́u'vň͂ł


==============================================================================
[
  E[߂ł́A]ȃp[^ĂG[Ƃ܂

------------------------------------------------------------------------------
  IF 
  ELSEIF 
  ELSE
  ENDIF
  ~~~~~~~~~~~~~~~~~~~~
    E0:FALSE / 0ȊO:TRUE
    E FALSE ̏ꍇA̐߂XLbv܂
    E!FALSE ̏ꍇA̐߂܂ŏi߂܂
      ̐߂ ELSEIF ꍇAENDIF ܂ŃXLbv܂
    EXLbvśAO̐擪 ";;"  "-" tďo͂܂
    E 1PASSڂɉłȂꍇ̓G[Ƃ܂
    ElXg\ł


  REPT 
  ENDM
  ~~~~~~~~~~~~~~~~~~~~
    EΉ ENDM ܂ł ̉񐔌JԂ܂ ([v}N)
    E 1PASSڂɉłȂꍇ̓G[Ƃ܂
      ̒l(JԂ/t32bit)n܂
    E[v񐔂̒lꍇ̓G[Ƃ܂
      [v񐔂 0xFFFF𒴂ꍇ͏s킸ɃG[Ƃ܂
    E[v}Nł́u[JxvWJ܂
    ElXg\ł


  IRP ,[,]...
  ENDM
  ~~~~~~~~~~~~~~~~~~~~
    EΉ ENDM ܂ł (̐)JԂ܂ ([v}N)
    Éû܂܁vn܂
      nɂāA̕\𒲐Kv܂

      IRP var "A","B","C","D","E"
        DB var
      ENDM

      IRP var B,C,D,E,(HL),A
        LD A,var
      ENDM

    E[v}Nł́u[JxvWJ܂
    ElXg\ł


  IRPC ,()
  ENDM
  ~~~~~~~~~~~~~~~~~~~~
    EΉ ENDM ܂ł (̒)JԂ܂ ([v}N)
    E͕]Ƀ}Nɓn܂
      1PASSڂɉłȂꍇ̓G[Ƃ܂
    E[v}Nł́u[JxvWJ܂
    ElXg\ł


  }N MACRO [[],...]
  ENDM
  ~~~~~~~~~~~~~~~~~~~~
    E}N`܂
    Eu.vŎn܂閼O͎g܂
    E}Ńu:v͖܂ (1̂)
    E}N͍Ē`ł܂
      ʏ̃V{(x)Əd閼Ogpł܂A͕ۏ؂܂
    E}NɃjjbNꕔ̋[߂ƓOgpď㏑ł܂
      AA}N͑啶ʂ܂̂ŒӂĂ
      E}NɗD悳[߁FIF, ELSE, ENDIF, REPT, IRP, IRPC, ENDM
        ̖O͋[߂D悳܂
        }N`ł܂gpł܂
      E}NƂĂgp\ȋ[߁FMACRO
       uMACROvƂOgp\ŁA}N`ɎxႵ܂
        AAĂяoɍsɃxƂł܂̂łӂ
        (ł̓RdĂȂׁAʕs\)
      ELȊOF
        }ND悳邽߁Aň̐v͎̂gȂȂ܂
    E͍ő 16 ŁAdĂ͂܂
    Ȅꏊ́ÃWbNœ肵܂
        1. sA؂蕶, ZqɊ܂܂镶, ԊO"{"->"}" ŕ
           ɗp镶͌ΏۂɊ܂܂Ȃ
        2. ƓT
      āAɉZq܂܂ꂽꍇA͓n܂

    EɉZq͎g܂
    Eɖgp̂̂ĂG[, xo܂
    E}N`̓lXgł܂
    E`Ƀ}ŇĂяo⃋[v}N̒`܂߂邱Ƃł܂A
      z`FbNĂ܂̂łӂ


  }N [[],...]
  ~~~~~~~~~~~~~~~~~~~~
    EOƈ̐v}NWJ܂
      v̂ȂꍇAł̓G[Ƃ܂
        sub macro regA,src
            sub src
            endm
     usub (hl)v͂̂܂܃AZuɓn  
     usub a,(hl)v̓}Nusub (hl)vɒuĂĕ]鄣

    Eu$v͓WJɊes]Ƃ̒lɂȂ܂

    ÉA񂻂̂̂n܂ (WJɂ͕]܂)
      ɑ}ꍇA]ɒӂĂ

        sample1 MACRO param
          LD A, param*10
        ENDM

        sample2 MACRO param
          LD A, (param)*10
        ENDM

        sample1 1+2    LD A, 1+2*10
        sample1 (1+2)  LD A, (1+2)*10
        sample2 1+2    LD A, (1+2)*10
        sample2 (1+2)  LD A, ((1+2))*10 ʂȊʂ͈e܂


  END
  ~~~~~~~~~~~~~~~~~~~~
    Eȍ~̃\[X𖳎܂
      lXg}NłĂWJ𒆎~AI܂
    Es̓Oɏo͂܂
    EEND ̐錾ȂĂAG[,x͏o܂


  BINCLUDE (t@C)[, (offset)[, (TCY)]]
  ~~~~~~~~~~~~~~~~~~~~
    EIy[VJE^oCit@Cǂݍ݂܂
    E(t@C)
      1PASSڂɉłȂꍇ, ԂȂꍇ̓G[Ƃ܂
    E(offset)
      ȗꍇ 0 ƂȂ܂
      1PASSڂɉłȂꍇ, ̒lꍇ̓G[Ƃ܂
      t@CTCY傫ȒlłG[Ƃ܂
    E(TCY)
      ȗꍇ̓t@CTCYƂȂ܂
      1PASSڂɉłȂꍇ, ̒lꍇ̓G[Ƃ܂
      t@CTCY𒴂lłG[Ƃ܂
    Eǂݍݒ EOF 𒴂ꍇAwTCY܂ 0xFF Ŗ߂܂
    EOɂ͓ǂݍ񂾃t@C̓eL^܂ (bdl)
    EBINCLUDE ̂݁ADS,DW ŗ\񂵂̈㏑ł܂ (xȂ)
      t BINCLUDE œǂݍ񂾗̈ DS,DW ōĊ蓖Ăł܂

  INCLUDE (t@C)
  ~~~~~~~~~~~~~~~~~~~~
    EINCLUDE悩߂A(ENDɒBĂȂ)𑱂܂
    E1PASSڂɉłȂꍇ, ԂȂꍇ̓G[Ƃ܂
    ElXg\łAz`FbNĂ܂̂łӂ


  CHAIN (t@C)
  ~~~~~~~~~~~~~~~~~~~~
    ECHAIN悩߂A[EOF]܂ŃXLbv܂
    E1PASSڂɉłȂꍇ, ԂȂꍇ̓G[Ƃ܂
    EXLbvśAO̐擪 ";;" tďo͂܂
    ElXg\łAz`FbNĂ܂̂łӂ
    E}Nł͕̓ۏႵ܂
      uCHAIN悩߂Ȃv̂ł͂Ȃ̂Œ
        INCLUDEt@CCHAINꍇF
        EINCLUDEt@C CHAINAA[EOF]܂ŃXLbv܂
        EINCLUDEt@C̐e INCLUDEAA܂


  ORG 
  ~~~~~~~~~~~~~~~~~~~~
    EIy[VJE^ɒl(AhX)ݒ肵܂
    E(t32bit) 1PASSڂɉłȂꍇ̓G[Ƃ܂
    E̒lꍇ̓G[Ƃ܂
      AhX 0xFFFF𒴂ꍇ 16bitɃ}XN܂
    Exłݒ\łAIuWFNg𐶐ς݂̃AhX͎wł܂
    ulabel: ORG vƋLqꍇ label  ORG ݒÕAhXɂȂ܂
      O̊Ysɂ̓xł͂Ȃ ORG Őݒ肳ꂽAhXL^܂
      xƃV{/x̓s`Ɠ悤ɋ֎~邩܂


  DEFS [,]
  DS   [,]
  ~~~~~~~~~~~~~~~~~~~~
    EIy[VJE^i߂܂
    Ep[^
      EXLbvoCg
      E(t32bit) 1PASSڂɉłȂꍇ̓G[Ƃ܂
      E̒lꍇ̓G[Ƃ܂
        XLbvɃAhX 0xFFFF𒴂ꍇ 16bitɃ}XNđs܂
    Ep[^
-     EXLbv͈͂ 00H Ŗ߂܂
-     Ep[^ꍇ́A̒lŖ߂܂
+     Ver. 0.6.7 dlύX܂
+     Ep[^w肳ĂȂꍇ̓oCi𐶐܂
+       ÃAhX́u\ς݁vƂĎgpłȂȂ܂
+       ]̓ɓꂵꍇ́A}N DS I[o[ChĂ
+       F
+         DS MACRO off
+            ds off,0   ;  ds ̓I[o[ChΏۂɂȂȂ
+         ;  DEFS off,0 ; i DEFS gȂ
+            ENDM
+     Ep[^ꍇ͂̒lŖ߂܂
+       ̏ꍇ̓oCi𐶐܂
++    Ver. 0.6.8 dl𒲐܂
++    EBINCLUDE ̂݁ADS,DW ŗ\񂵂̈㏑\Ƃ܂ (xȂ)
++    Et BINCLUDE œǂݍ񂾗̈ DS,DW ōĊ蓖Ăł܂


  DEFB [,]...
  DB   [,]...
  ~~~~~~~~~~~~~~~~~~~~
    EBYTEf[^L܂
    Ef[^Ȃꍇ̓G[Ƃ܂
    EԂꍇ́A擪 ASCIIR[h(b) Ő؂o܂
      'ABC'  DB  41H,42H,43H
    E܂ޏꍇA1PASSڂɉłȂꍇ̓G[Ƃ܂
      ł́Af[^ςȂ̏ꍇG[ƂȂ܂
        UNDEF?"ABC":"DEF" (K3)
        "ABC"+UNDEF       (K4)
        u"ABC",UNDEFvƂΒʂ (1PASSځF41H,42H,43H, n)
      ܂܂Ȃ 2PASSڂɉłȂꍇ̂݃G[Ƃ܂
    Eu$v̓\[Xs̏I܂ŕω܂


  DEFW [,]...
  DW   [,]...
  ~~~~~~~~~~~~~~~~~~~~
    EWORDf[^L܂
    Ef[^Ȃꍇ̓G[Ƃ܂
    EԂꍇ́A擪 ASCIIR[h(b) Ő؂o܂
      'ABC'  DB  41H,00H,42H,00H,43H,00H
    E܂ޏꍇA1PASSڂɉłȂꍇ̓G[Ƃ܂
      ł́Af[^ςȂ̏ꍇG[ƂȂ܂
      ܂܂Ȃ 2PASSڂɉłȂꍇ̂݃G[Ƃ܂
    Eu$v̓\[Xs̏I܂ŕω܂


  IyR[h [[Iyh|],...]
  ~~~~~~~~~~~~~~~~~~~~
    EIyhɉߕsꍇ̓G[Ƃ܂
    EL߂ł͎ 1PASSڂɉłȂꍇ̓G[Ƃ܂
      ȊÓA 2PASSڂɉłȂꍇ̓G[Ƃ܂
      8080/8085 : RSTn
        Z80       : RSTn, BITn,uIM nv,uOUT (C),0v


  V{ EQU 
  ~~~~~~~~~~~~~~~~~~~~
    EV{`܂
      xƓsł͒`ł܂ (loǧ₷D)
    EƂĕ]\ȕ̓V{Ɏg܂
      ݁A`ɂ̓G[ƂĂ܂
    Eu.vŎn܂閼O͎g܂
    EV{́u:v͖܂ (1̂)
    EV{͍Ē`ł܂ (xƓǗł)
      AAlŏ㏑ꍇ̓G[Ƃ܂
      }NƂ͕ʊǗłAꍇ͕̓ۏ؂܂
    EV{̒lɕ͒`ł܂
    EIyR[h̓V{ƂĎg܂
    Eu$v̓Iy[VJE^킷ʂȃV{ƂĒ`ς݂ł
    Eu$v͎̒ő΃AhX̌vZΏۂƂȂꍇ܂
    E[J  e|EV{gpł܂
      ڍׂ́uxv̍QƂĂ
      ` PREFIX XVȂ_ăxƓł
    E 1PASSڂɉłȂꍇ̓G[Ƃ܂


  V{(x)
  ~~~~~~~~~~~~~~~~~~~~
    Ex`܂
      ̃x𓯂sŒ`ł܂ (loǧ₷D)
    El(萔)Ƃĕ]̑ΏۂƂȂ镶͎g܂
      ݂̓`FbNĂ܂񂪁A]ɃG[ɂȂƎv܂
        Ő̃xg\肪܂
        ̂ƂɃ`FbNǉ܂
    E[, IyR[h, V{`łȂׂ̂͂ăxƂ܂
    Ex́u:v͖܂ (1̂)
    Ex͍Ē`ł܂ (V{`ƓǗł)
      }NƂ͕ʊǗłAꍇ͕̓ۏ؂܂
    Exɂ̓Iy[VJE^̒lݒ肳܂
    Ex͎̒ő΃AhX̌vZΏۂƂȂꍇ܂
    Ex́u.vgāuPREFIX.suffixv̍\Ƃ邱Ƃł܂
      E"." Ŏn܂郉xu[JExvƌĂт܂
      Ex`Ɂu.vŎn܂ĂȂꍇ PREFIX XV܂
        PREFIX ̓x擪ŏ́u.v܂ł̕ɂȂ܂
      Eu.suffixv͖Ă܂܂
      E` PREFIX ȗꍇA݂ PREFIX ⊮܂
        AAPREFIX `̏ꍇ͉܂
      Ep PREFIX ȗꍇA݂ PREFIX ⊮܂
        AAPREFIX `̏ꍇ͉܂
      pu.suffixv݂̂ňӂɌ\ȏꍇ PREFIX Č܂
        āAPREFIX vȂꏊł̓G[ɂȂ܂
    Ee|ExF
      E[v}Nł́ue|ExvWJ܂
      EPREFIX ⊮ŁAŏɌu#v̒ [vID ⊮܂
      E⊮ꂽ [vID ́A[v𔲂ƌȂȂ܂
       u#v PREFIX ɒuꂽꍇlł


==============================================================================
G[bZ[W




------------------------------------------------------------------------------





==============================================================================
